System and method for storing and retrieving channel data

ABSTRACT

A method includes, for each of a plurality of channels at a well site, converting channel data from a source data format to a common data format in real-time as the channel data is generated. The common data format includes a plurality of elements organized into a plurality of sets. Each element includes a minimum collection of fields. The method further includes, for each of the plurality of channels, storing the converted channel data in a data store as part of the at least one element.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 17/510,088, filed Oct. 25, 2021. U.S. application Ser. No. 17/510,088 is a continuation of U.S. application Ser. No. 17/028,708, filed Sep. 22, 2020, now U.S. Pat. No. 11,188,572, issued on Nov. 30, 2021. U.S. application Ser. No. 17/028,708 is a continuation of U.S. application Ser. No. 16/356,566, filed Mar. 18, 2019, now U.S. Pat. No. 10,824,651, issued on Nov. 3, 2020. U.S. application Ser. No. 16/356,566 is a continuation of U.S. application Ser. No. 14/820,955, filed Aug. 7, 2015, now U.S. Pat. No. 10,467,253, issued on Nov. 5, 2019. U.S. application Ser. No. 14/820,955 is a continuation of U.S. application Ser. No. 13/829,590, filed Mar. 14, 2013, now U.S. Pat. No. 9,191,266, issued on Nov. 17, 2015. U.S. application Ser. No. 13/829,590 claims priority from, and incorporates by reference the entire disclosure of, U.S. Provisional Application No. 61/614,867, filed on Mar. 23, 2012. U.S. application Ser. No. 17/510,088, U.S. application Ser. No. 17/028,708, U.S. application Ser. No. 16/356,566, U.S. application Ser. No. 14/820,955, U.S. application Ser. No. 13/829,590, and U.S. Provisional Application No. 61/614,867 are incorporated herein by reference.

BACKGROUND Technical Field

The present invention relates generally to data storage and more particularly, but not by way of limitation, to systems and methods for storing and retrieving channel data.

History of Related Art

An oil well is a general term for any boring through the earth's surface that is designed to find petroleum-oil hydrocarbons. An initial life of an oil well can be viewed in three stages: planning, drilling, and completion. During these stages, a huge volume of information is generated. This information can be loosely categorized into two types: static data and real-time data. Static data is generated either in advance (e.g., modeling data, cost predictions, and well plans) or after events (e.g., daily reports, mud reports, fracture reports, and casing data). Static data can be delivered either on a regular basis (e.g. daily reports) or on a per-event basis (e.g., fracture reports and completion reports). Real-time data is sensor-derived data that is generated through either analysis of fluids (e.g., mud logs) or through deploying sensor tools in a well hole. Real-time data can be collected immediately via, for example, telemetry, or upon completion of a tool run (e.g., memory data). Real-time data can be, for example, time-indexed or depth-indexed

During the drilling and completion stages, there has been increased focus on remote support and participation. In particular, there is significant value to be obtained from an ability to analyze in real time various data streams that are generated, often through cross-comparison with data from previous wells or with models from the planning stage. A typical oil well can require collaboration from teams based at the oil well, in regional offices, and corporate headquarters. This may mean that people thousands of miles apart need to be sure they are looking at the same data sets. These data sets, in turn, may be aggregated from several different streams of data, from historical data generated in previous wells, or from models predicted during the planning stage.

Benefits can be gained from cross-correlation and analysis of this data. These benefits can include greater value in terms of accuracy of interpretation and lessons learned for future reference. Examples are comparing real-time mud and pressure readings with loss-of-time incidents reported in daily operations reports and analyzing cost information against drilling-performance indicators. Benefits can also be gained by allowing people from different disciplines and sited in different locations to work together around the same data and information so as to provide a holistic approach to data that enables better informed decisions.

Historically this has not been possible due to schisms in the organization of data and the difficulty of sharing many different types of data in the time constraints required for real-time analysis across multiple locations. Further complications have been generated by the requirement to tightly control access to this data to ensure security for what can be extremely valuable information that can have significant market impact upon an oil company.

SUMMARY OF THE INVENTION

In one embodiment, a method includes, for each of a plurality of channels at a well site, on at least one server computer, converting channel data from a source data format to a common data format in real-time as the channel data is generated. The common data format includes a plurality of elements organized into a plurality of sets. Each element includes a minimum collection of fields. The method further includes, for each of the plurality of channels, the at least one server computer storing the converted channel data in a data store as part of the at least one element.

In one embodiment, a system includes at least one server computer, wherein the at least one server computer is operable to perform a method. The method includes, for each of a plurality of channels at a well site, converting channel data from a source data format to a common data format in real-time as the channel data is generated. The common data format includes a plurality of elements organized into a plurality of sets. Each element includes a minimum collection of fields. The method further includes, for each of the plurality of channels, storing the converted channel data in a data store as part of the at least one element.

In one embodiment, a computer-program product includes a computer-usable medium having computer-readable program code embodied therein. The computer-readable program code is adapted to be executed to implement a method. The method includes, for each of a plurality of channels at a well site, converting channel data from a source data format to a common data format in real-time as the channel data is generated. The common data format includes a plurality of elements organized into a plurality of sets. Each element includes a minimum collection of fields. The method further includes, for each of the plurality of channels, storing the converted channel data in a data store as part of the at least one element.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the method and apparatus of the present invention may be obtained by reference to the following Detailed Description when taken in conjunction with the accompanying Drawings wherein:

FIG. 1 illustrates system for real-time conversion and retrieval of channel data;

FIG. 2 illustrates a component view of the system of FIG. 1 ;

FIG. 3 illustrates an exemplary conversion process;

FIG. 4 describes an example of converting data from a common data format into supported industry data formats; and

FIG. 5 illustrates system for storing and retrieving channel data.

DETAILED DESCRIPTION

Various embodiments utilize a database system that implements a common data format, also referred to herein as a “common data set.” In the drilling industry, data is generated from numerous sensors that transmit data using diverse industry data formats such as, for example, WITSML, Professional Petroleum Data Management (PPDM) standards, and numerous others. A given sensor or other source of data is referred to herein as a “channel.” Data from a channel may be referred to as “channel data,” which term is inclusive of both raw data and metadata. The raw data includes, for example, measured data determined by the sensor or source. The metadata includes information about the raw data such as, for example, time, depth, identification information for the channel, and the like. In a typical embodiment, principles of Eulerian set theory are applied to meaningfully and uniformly represent data that is received in the diverse data formats.

FIG. 1 illustrates system 100 for real-time conversion and retrieval of channel data. In a typical embodiment, the system 100 is situated at a well site. The system 100 includes sensors 102, a data-collection system 104, and a well-site computer system 108. The data-collection system 104 includes at least one server computer 106. The well-site computer system 108 includes at least one server computer 110 and a data store 112.

The data-collection system 104 receives channel data from the sensors 102. The sensors 102 can provide various types of channel data such as, for example, mud logging, logging while drilling (LWD), wireline data, production data, and the like. The channel data can be transmitted to the at least one server computer 106 via, for example, TCP/IP or RS232 (i.e. serial port) connections. In embodiments using serial-port connections, communication can occur through a local COM port with a null modem cable. For distances exceeding a maximum serial cable length limitation, a serial-to-Ethernet converter may be used. In embodiments utilizing TCP/IP connections, the data-collection system 104 can be configured as a server or client and collect the channel data through an agreed-upon IP socket. TCP/IP network connections can have firewall technology implemented as needed to support security policies.

In various embodiments, the data-collection system 104 can be situated in different locations at the well site. For example, the data-collection system 104 can be in an employee's office, in a communications room, or in a service-company's cabin. As described in greater detail with respect to FIG. 2 , the well-site computer system 108 receives the channel data from the data-collection system 104 and stores the channel data on the data store 112 in a common data format.

In various embodiments, all or a portion of the sensors 102 may be provided and maintained by third-party service companies. In these embodiments, each service company typically supplies details of the channel data including, for example, what data is transmitted and a unit of measurement for data values. Therefore, upon initial configuration of a channel (i.e., one of the sensors 102), certain information is known, such as, for example, a well to which the channel relates, data points that are transferred on the channel, a source data format (e.g., WITSML), etc. As a result of this information, a precise type and format of data and metadata that will be transmitted via the channel are known. As described in greater detail below with respect to FIG. 3 , this information allows the channel data to be mapped and converted into a standardized XML-based format that conforms to the common data format. This standardized XML-based format is then transmitted to the at least one server computer 110 and stored in the data store 112 in real-time.

In a typical embodiment, the common data format is represented in the data store 112. The data store 112 may be, for example, a relational database using SQL Server or Oracle. The common data format defines each type of information that is received via the sensors 102 and establishes a minimum collection of data fields and metadata fields that are stored for that type. For example, in a typical embodiment, each type of information may be defined as a type of object, with the minimum collection of data being defined as properties for the object.

To give meaning to the stored channel data, the common data format utilizes a set structure that includes elements and sets. By way of example, in various embodiments, there can be a one-to-one correspondence between “elements” and “channels”; however, it should be appreciated that elements can be defined differently to include, for example, groups of channel data (e.g., corresponding to a well) or selected channel data from a given channel. Elements can be represented as a table or group of tables that incrementally become larger as new channel data is received.

In a typical embodiment, sets can be represented hierarchically in the data store 112 using the channel data. In particular, sets can be represented as object types that advantageously aggregate particular groups of elements and/or other objects. For example, a “well bore” set can aggregate elements that are applicable to well bores. Thus, instances of the “well bore” object type can include specific elements and/or objects that are applicable to specific well bores along with, for example, identification properties for the well bore. From a hierarchical view, additional object types can be defined to represent sets such as, for example, wells. Instances of a well object type can include, for example, specific well-bore objects that are applicable to a specific well along with, for example, identification information for the well. Sets can similarly be defined for a field, project, and the like. It should also be appreciated that sets can overlap. For example, depending on purpose, wells may be grouped by geography, production, or arbitrary criteria. In this manner, sets can also be custom defined by users to suit particular needs. Although particular elements may be included within multiple sets according to the set structure, typically only one copy of each element stored.

FIG. 2 illustrates a component view 200 of the system 100. As shown, the data-collection system 104 includes a data collection and conversion tool 214 resident on the at least one server computer 106. The at least one server computer 110 includes a transmission tool 220, a replication engine 222, a web user-interface (UI) engine 224, and a plotting engine 226. In a typical embodiment, the transmission tool 220, the replication engine 222, the web UI engine 224, and the plotting engine 226 are each software components of the at least one server computer 110. In addition, the data store 112 is operable to receive and provide channel data according to a WITSML API 216 and/or a system API 218.

In a typical embodiment, the WITSML API 216 is representative of an ability to transmit and receive data according to an industry data format. Therefore, in other embodiments, the WITSML API 216 could be substituted or supplemented with an API for a different industry data format. APIs such as, for example, the WITSML API 216, can be used to transmit or receive data to or from, respectively, third-party software applications. In a typical embodiment, the system API 218 is operable to receive and provide channel data according to the common data format as described above. In a typical embodiment, the data store 112 supports all vendor extensions and is capable of handling non-standard implementations. Third party applications may connect to the well-site computer system 108 for purposes of updating real-time analyses.

In a typical embodiment, if the data store 112 receives data via the WITSML API 216, the data is converted into the common data format in a manner similar to that described with respect to the data collection and conversion tool 214 below. If attachment data is received via the system API 218, in a typical embodiment, the attachment data will be first stored as an internal attachment. Subsequently, the data store 112 typically checks to see if it has any mapping records for that particular attachment type, checking by format. Mapping records will be described in greater detail with respect to FIG. 3 .

In a typical embodiment, as described above, channel data, either static or real-time, is stored as discrete objects represented by elements. The elements may then be stored in a Eulerian set structure as described above with respect to the common data format. Homogeneity of data objects with different indexing can be achieved through the use of calculated interstitial data sets to allow comparison. For instance, data received with indexing based upon time is converted into an interstices set with extrapolated depth-based data indexing. In other words, data may be indexed based on two values: depth and time. An example will be described with respect to FIG. 3 .

The transmission tool 220 is operable to transmit data (e.g. as XML) between data stores such as, for example, the data store 112 and another data store that is configured similarly to the data store 112 (e.g., a central data store). In a typical embodiment, the transmission tool 220 supports multiple vendor extensions and is capable of handling non-standard implementations. For example, in various embodiments, the transmission tool 220 allows data transport between data stores such as, for example, the data store 112, via an XML data stream.

The replication engine 222 typically utilizes the system API 218 and allows for synchronization through bidirectional exchange of any type of data or metadata within the data store 112. In various embodiments, data within data sets of the common data format can be viewed as unique elements that belong to one or more sets. Each element and set has a unique ID (UNID) and an access-control list. Replication between servers may occur at intervals according to a defined schedule, in near-real-time when triggered by data changes in server clusters, or when triggered by an administrator or program.

In a typical embodiment, the replication engine 222 has network access to a target server that may be similar, for example, to the at least one server computer 110. Once replication is initiated, the replication engine 222 contacts the target server. Authentication can be performed using, for example, secure authentication markup language (SAML). Once authentication is complete, the replication engine 222 downloads lists from both the at least one server computer 110 and the target server of all data and metadata that has changed since a last logged replication. In a typical embodiment, a last entry of each list is a timestamp to use as a query marker for a next replication event. The replication engine 222 then cross-compares the lists, using rule-based logic, to handle any conflicts where elements have changed on both systems.

The replication engine 222 moves through the lists (typically indexed by UNID) and cross-compares each UNID. If a UNID exists on one server only (i.e., the target server or the at least one server computer 110 but not both), the element or set to which the UNID corresponds is transmitted to the other server. If a UNID appears on both lists, then there is typically a replication conflict, and rules for handling this conflict are generally followed. In a typical embodiment, these rules allow the replication engine 222 to determine which modified version is the one that should overwrite the other. Rules include, for example, first modified, last modified, server X always wins, etc. In various embodiments, the replication engine 222 can also be configured to perform single-direction replication. In these embodiments, a single server (e.g., the target server) is queried for changes since last replication. These changes are all transmitted to the target server.

The web UI engine 224 provides user management, navigation and, for example, a static data interface. The web UI engine 224 can be used, for example, to access the system API 218 via the static data interface. The plotting engine 226 allows presentation and display of channel data from the data store 112. For example, the plotting engine 226 can allow a user to securely access the channel data via a web browser. Displays provided by the plotting engine 226 can include, for example, plots, graphs, status indicators, and digital and analog gauges with thresholds.

The data collection and conversion tool 214 can receive the channel data from the sensors 102 in numerous industry data formats (e.g., WITSML, log interchange standard (lis), log ASCII standard (las)) and convert into a standardized XML-based format that conforms to the common data format. Exemplary operation of the data collection and conversion tool 214 will be described in greater detail with respect to FIG. 3 .

FIG. 3 illustrates an exemplary conversion process 300 that may be performed by a data collection and conversion tool such as, for example, the data collection and conversion tool 214 of FIG. 2 . The conversion process 300 converts supported industry data formats 328 into a common data format 334.

Upon initial configuration of a channel, certain information is known such as, for example, a well to which the channel relates, data points that are transferred on the channel, a source data format (e.g., WITSML), etc. As a result of this information, a precise type and format of data and metadata that will be transmitted via the supported industry data formats 328 is known. Mapping records 330, usually stored as metadata, are defined that map fields of each of the supported industry data formats 328 (e.g., WITSML) to fields of an object type defined by the common data format 334.

Since the supported industry data formats 328 can vary significantly in format and information provided, the mapping records 330 typically include a distinct mapping record for each industry data format of the supported industry data formats 328. If an applicable mapping record does not yet exist, the applicable mapping record can be generated in this fashion and stored among the mapping records 330. When channel data is received in real time according to the supported industry data formats 328, the channel data is mapped according to the mapping records 330 into an object and, more particularly, into an element, of the common data format 334. In that way, the channel data is stored not according to the supported industry data formats 328 but in the common data format 334 according to a type of information contained therein.

As a general matter, the supported industry data formats 328 may not provide all data that is minimally required by the common data format 334. In a similar manner, the supported industry data formats 328 may provide additional data that is not required by the common data format 334. The data collection and conversion tool is operable to handle these non-mutually exclusive scenarios. More particularly, if any of the supported industry data formats 328 provides less than all data minimally required by the common data format 334, a source for supplemental data 332 can be specified, for example, as a rule. Depending on its nature, the supplemental data 332 may be, for example, calculated, acquired from another source such as a database, or manually entered by personnel. If any of the supported industry data formats 328 provide additional data that is not required by the common data format 334, the additional data may be stored and associated with the applicable object.

An example of the supplemental data 332 will now be described. In various embodiments, the common data format 334 facilitates multiple indexing based on, for example, time, measured depth, and vertical depth. It should be appreciated that the supported industry data formats 328 may not include sufficient information to index based on time, measured depth, and vertical depth. Rather, channel data received in the supported industry data formats 328 is often only received with sufficient data to index, for example, based on either time or one of measured depth and vertical depth. In various embodiments, the supplemental data 332 can provide missing time or depth data.

In particular, a given industry data format of the supported industry data formats 328 may not provide a measured depth or a vertical depth as part of its metadata. Therefore, in a typical embodiment, upon configuration of a channel, a source for the supplemental data 332 (in particular, supplemental data that includes depth information) can be defined. For example, it may be known that sensors corresponding to other channels are positioned at a same depth as the sensor for the given channel. If any of these other channels provide measured or vertical depth data as part of their channel data, these channels can be cross-referenced. The most recent channel data for one of these channels can be used as a source for the supplemental data 332. This relationship can be specified, for example, as a rule. Thus, once the channel is configured and the channel data is being received, the supplemental data 332 can be supplied during real-time conversion into the common data format.

FIG. 4 describes an example 400 of converting data from a common data format 434 into supported industry data formats 438. The supported industry data formats 438 may be, for example, similar to the supported industry data formats 328 of FIG. 3 . As shown, metadata connectors 436 can be established that define relationships between each object representation in the common data format 434 (inclusive of both elements and sets) and each of the supported industry data formats 438. In that way, a particular set can be converted into taxonomies of the supported industry data formats 438. The metadata connectors 436 may be similar to the mapping records 330 described with respect FIG. 3 except that the metadata connectors 436 are utilized in reverse fashion.

For example, to the extent a well set has a mappable equivalent representation in a given industry data format of the supported industry data formats 438, this mappable equivalent can be used. Even sets custom-defined by users, as aggregations of objects defined by the common data format, can be output to the supported industry data formats 438 as a result of the metadata connectors 436 defined for the aggregated sets/objects. Therefore, based on the metadata connectors 436, instances of each object type (e.g., elements and sets) automatically have a defined relationship with each of the supported industry data formats 438.

As a result of the principles described above with respect to FIGS. 3 and 4 , a common data format such as, for example, the common data format 334 the common data format 434, greatly reduces the complexity of working with data in the drilling industry. For example, web or client applications that display or report on for example, real-time data, need not adapt to or be able to interpret other industry data formats. Such web or client applications only need to be able to interact via the common data format and are thus abstracted from the complexities of working with diverse industry data formats. As new data formats are supported by the common data format, operation of these web or client applications can remain unchanged. In addition, because of the common data format, any supported industry data format can be converted to any other supported industry data format without a need to define innumerable direct mappings and conversions. Rather, when a new industry data format is supported, conversion only needs to be accomplished to the common data format in a manner similar to that described with respect to FIG. 3 . After conversion into the common data format, data such as channel data can be converted to any supported industry data formats as described with respect to FIG. 4 .

FIG. 5 illustrates system 500 for storing and retrieving channel data. The system 500 includes a well-site computer system 502(1), a well-site computer system 502(2), and a central computer system 540. It should be appreciated that the well-site computer system 502(1) and the well-site computer system 502(2) are shown for illustrative purposes. In practice, the central computer system 540 may communicate with any number of well-site computer systems such as, for example, the well-site computer system 502(1) and the well-site computer system 502(2).

The well-site computer system 502(1) and the well-site computer system 502(2) include at least one server computer 510(1) and at least one server computer 510(2), respectively. In addition, the well-site computer system 502(1) and the well-site computer system 502(2) include a data store 512(1) and a data store 512(2), respectively. In a typical embodiment, the well-site computer system 502(1) and the well-site computer system 502(2) operate as described with respect to the well-site computer system 108 of FIG. 1 . The central computer system includes at least one server computer 542 and a central data store 544.

In a typical embodiment, the well-site computer system 502(1) and the well-site computer system 502(2) are operable to communicate with the central computer system 540 via a transmission tool such as, for example, the transmission tool 220 of FIG. 2 . In various embodiments, the well-site computer system 502(1) and the well-site computer system 502(2) may communicate via, for example, satellite communication or other network communication. In this fashion, the central computer system 540 is operable to store, in real-time, channel data related to multiple wells in the central data store 544 according to a common data format as described above. In addition, the central computer system 540 is operable to provide the channel data to requestors in real-time in the common data format or in any supported industry data format.

In a typical embodiment, the data store 512(1) and the data store 512(2) can act as a buffer at respective well sites in the event a communications link is lost, for example, to the central computer system 540. In a typical embodiment, this functionality also enables personnel at each well site to access and view the same data being monitored at the central computer system 540 without having to utilize, for example, a satellite connection. In a typical embodiment, the data store 512(1) and the data store 512(2) can be synchronized with the central data store via, for example, the transmission tool as described above. In this fashion, the central data store can act as a central hub for the consolidation of data from multiple satellite data stores such as, for example, the data store 512(1) and the data store 512(2). Third-party applications may connect to either central computer system 540 or appropriate one of the well-site computer system 502(1) and the well-site computer system 502(2). In this fashion, the third-party applications can update real-time analyses provided thereby.

In various embodiments, storage according to the common data format can be made faster and more efficient by advantageously leveraging how relational databases access and store tables. In a typical embodiment, each element in the common data format can be stored in logs. It should be appreciated that database systems that operate using, for example, SQL Server or Oracle, generally store recently-accessed tables and associated indices in cache memory for faster access. Indices and tables that are not utilized within certain periods of time are removed from the cache memory. In various embodiments, this functionality can be leveraged to ensure that indices and tables relating, for example, to wells that are considered “active,” are stored in the cache memory. In general, it is commonplace for logs to be stored in a small number of tables that can become enormous in storage size over time. This can make the cache memory inefficient and cause a database system to operate slowly and less efficiently. This is due, in part, to the fact that the grouping of data amongst the tables does not reflect how data is currently being accessed and, therefore, the cache memory does not necessarily include tables that are likely to be accessed in the near future.

In a typical embodiment, each log can represent an element of the common data format and be stored in a separate database table (although other groupings are also possible and will be apparent to one of skill in the art after reviewing the description herein). Under this grouping, each log can represent, for example, a particular channel. When channel data is being received, that channel data is stored in the log. The corresponding database table and its index will therefore remain in the cache memory.

Collectively, indices for logs (and the logs themselves) that are actively receiving incoming channel data will remain in the cache memory. Because of the storage of logs in separate database tables, channel data is not comingled with other channel data that may not be active. Therefore, the database tables that remain in the cache memory are likely to be those that correspond to active channels, and therefore, active wellbores and wells. In addition, it is these database tables that are likely to be accessed in the near future, thereby making the cache memory more efficient. Channels that are not actively providing channel data are less likely to have their logs included in the cache memory. These channels are generally channels that refer to inactive sensors (and wells) and are therefore less likely to be accessed in the near future.

Although various embodiments of the method and apparatus of the present invention have been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth herein. 

1-20. (canceled)
 21. A method comprising, by a computer system, for each sensor of a plurality of sensors: receiving sensor data in real-time as the sensor data is generated by the sensor; in real-time as the sensor data is received, converting the sensor data from a source data format used by the sensor to a set-structured format implemented by a database, wherein the set-structured format comprises a plurality of elements organized into a plurality of sets, the plurality of elements corresponding, to the plurality of sensors; and in real-time as the sensor data is received, storing the converted sensor data in the database, the storing comprising storing the element corresponding to the sensor in a table of the database, the database comprising a plurality of tables representing the plurality of elements, the database operable to store at least selected tables of the plurality of tables that have been utilized within a certain period of time in cache memory for access.
 22. The method of claim 21, wherein the plurality of tables comprise at least one separate table for each of the plurality of elements, such that the at least one table does not comingle data from different sensors.
 23. The method of claim 22, comprising the database removing, from cache memory, tables that have not been utilized within the certain period of time.
 24. The method of claim 22, wherein the database is operable to store, in the cache memory, a plurality of indices associated with the at least selected tables that have been utilized within the certain period of time.
 25. The method of claim 24, comprising the database removing, from the cache memory, tables and indices that have not been utilized within the certain period of time.
 26. The method of claim 21, comprising: accessing, from the database, one or more sets of the plurality of sets; and updating a real-time analysis based on the one or more sets.
 27. The method of claim 21, comprising: accessing, from the database, one or more sets of the plurality of sets; converting the one or more sets to a supported industry data format; and transmitting the converted one or more sets to a third-party application so that a real-time analysis can be updated.
 28. The method of claim 21, wherein at least one set of the plurality of sets aggregates other sets of the plurality of sets.
 29. The method of claim 21, comprising custom-defining a new set to be included in the plurality of sets.
 30. The method of claim 21, wherein the converting and the storing are performed for sensors in use at each of a plurality of well sites.
 31. The method of claim 30, wherein the plurality of sets comprises: a well-bore set comprising elements relating to a given well bore; and a well set comprising well-bore sets relating to a given well.
 32. A system comprising: a plurality of sensors operable to generate sensor data; a database comprising a plurality of tables and a cache memory, wherein the database is operable to: implement a set-structured format comprising a plurality of elements organized into a plurality of sets, the plurality of elements corresponding to the plurality of sensors, the plurality of tables representing the plurality of elements; and store, in the cache memory, at least selected tables of the plurality of tables that have been utilized within a certain period of time; and a computer communicably coupled to the database and the plurality of sensors, wherein, for each sensor of the plurality of sensors, the computer is operable to: receive the sensor data in real-time as the sensor data is generated by the sensor; in real-time as the sensor data is received, convert the sensor data from a source data format used by the sensor to the set-structured format implemented by the database; and in real-time as the sensor data is received, store the converted sensor data in the database, the storage comprising storage of the element corresponding to the sensor in a table of the database.
 33. The system of claim 32, wherein the plurality of tables comprise at least one separate table for each of the plurality of elements, such that the at least one table does not comingle data from different sensors.
 34. The system of claim 33, wherein the database is operable to remove, from the cache memory, tables that have not been utilized within the certain period of time.
 35. The system of claim 33, wherein the database is operable to store, in the cache memory, a plurality of indices associated with the at least selected tables that have been utilized within the certain period of time.
 36. The system of claim 35, wherein the database is operable to remove, from the cache memory, tables and indices that have not been utilized within the certain period of time.
 37. The system of claim 32, wherein the computer is operable to: access, from the database, one or more sets of the plurality of sets; and update a real-time analysis based on the one or more sets.
 38. The system of claim 32, wherein the computer is operable to: access, from the database, one or more sets of the plurality of sets; convert the one or more sets to a supported industry data format; and transmit the converted one or more sets to a third-party application so that a real-time analysis can be updated.
 39. The system of claim 32, wherein the conversion and the storage are performed for sensors in use at each of a plurality of well sites.
 40. The system of claim 39, wherein the plurality of sets comprise: a well-bore set comprising elements relating to a given well bore; and a well set comprising well-bore sets relating to a given well. 